package com.oa.ylms.apps.business.goods;

import java.util.List;

import com.oa.ylms.apps.entity.goods.GoodInfoValue;

public interface IGoodsInfoService {
	public int getTotalPages();
	/**
	 * 管理员和普通用户都有的权限.都可以通过选择类型来获取物资信息的列表(管理员操作是在物资信息管理页面上) (普通用户操作在申请物资信息页面上)
	 * 
	 * @param categoryId
	 * @param role
	 * @return
	 * @throws Exception
	 */
	public List<GoodInfoValue> queryAllByCateId(int categoryId, int role)
			throws Exception;

	/**
	 * 管理员权限:根据各种条件来分页查询物资信息.(物资类型,是否可见.)
	 * @param categoryId
	 * @param states
	 * @param role
	 * @param rows
	 * @param pageNo
	 * @return
	 * @throws Exception
	 */
		public List<GoodInfoValue>queryWithPage(Integer categoryId,Integer states,int rows,int pageNo) throws Exception;

	/**
	 * 查询页数
	 * 
	 * @param rows
	 * @return
	 * @throws Exception
	 */
	public int countTpages(Integer categoryId, Integer states,int rows) throws Exception;

	/**
	 * 修改物资信息
	 * 
	 * @param info
	 * @return true if update success
	 * @throws Exception
	 */
	public boolean modifyGoodsInfo(GoodInfoValue info) throws Exception;

	/**
	 * 删除一条物资信息
	 * 
	 * @param delete_id
	 * @return true if delete success
	 * @throws Exception
	 */
	public boolean deleteGoodsInfo(int goodId) throws Exception;

	/**
	 * 删除多条物资信息
	 * 
	 * @param goodIds
	 * @return
	 * @throws Exception
	 */
	public String deleteGoodInfos(String goodIds) throws Exception;

	/**
	 * 添加一条物资信息
	 * 
	 * @param info
	 * @return goodId
	 * @throws Exception
	 */
	public int addGoodsInfo(GoodInfoValue info) throws Exception;

	/**
	 * 通过物资信息Id查询物资信息
	 * 
	 * @param goodId
	 * @return
	 * @throws Exception
	 */
	public GoodInfoValue queryByGoodId(int goodId) throws Exception;

	/**
	 * 设置物资信息可见
	 * 
	 * @param goodId
	 * @return
	 * @throws Exception
	 */
	public boolean toEnable(int goodId) throws Exception;

	/**
	 * 设置物资信息不可见
	 * 
	 * @param goodId
	 * @return
	 * @throws Exception
	 */
	public boolean toDisable(int goodId) throws Exception;

}
